<?php
/**
 * 页面分类模型
 * @createtime 2015-08-24 20:29
 * @author Halu
 */
namespace Admin\Model;
use Think\Model;
class SingleCateModel extends Model {
	
	/**
	 * 通过分类获取用户信息
	 * @param string $cat_name 分类名
	 * @return bool/array
	 */
	public function getSingleCate($cat_name) {
		if (empty($cat_name) || !is_string($cat_name)) {
			return false;
		}
		return $this->where(array('cat_name'=>$cat_name))->find();
	}
	
	/**
	 * 通过ID获取单页分类信息
	 * @param int $cat_id 单页ID
	 * @return bool/array
	 */
	public function getSingleCateById($cat_id){
		if (empty($cat_id) || !is_int($cat_id)) {
			return false;
		}
		return $this->where(array('cat_id'=>$cat_id))->find();
	}
	
	/**
	 * 获取用户列表
	 * @param array $where 查询条件
	 * @param string $order 排序方式
	 * @param string $limit 查询条数
	 * @return array
	 */
	public function getSingleCateList($where=array(),$order='cat_id desc',$limit='', $isJoin=0) {
		if (!empty($where) && is_array($where)) {
			$this->where($where);
		}
		if (!empty($order) && is_string($order)) {
			$this->order($order);
		}
		if (!empty($limit) && (is_string($limit) || is_numeric($limit))) {
			$this->limit($limit);
		}
		if ($isJoin) {
			$this->alias('cate');
			$this->field('cate.*,admin.username,admin.nickname');
			$this->join('__ADMIN__ as admin ON admin.id = cate.admin_id');
		}
		
		return $this->select();
	}
	
	/**
	 * 统计单页分类数量
	 * @param array $where 查询条件
	 * @return int
	 */
	public function getSingleCateNum($where = array()){
		if ($where && is_array($where)) {
			$this->where($where);
		}
		return $this->count();
	}
	
	/**
	 * 检测单页分类是否可用
	 * @param string $cat_name 分类名
	 * @param array $where 条件
	 * @return bool true可用,false不可用
	 */	
	public function checkCateName($cat_name, $where=array()) {
		if (empty($cat_name) || !is_string($cat_name)) {
			return false;
		}
		$where ['cat_name'] = $cat_name;
		if ($this->where($where)->count()) {
			return false;
		}
		return true;
	}
	

	/**
	 * 标记删除分类
	 * @param int $cat_id
	 * @return bool
	 */
	public function delCate($cat_id) {
		if (!$cat_id || !is_numeric($cat_id)) {
			return false;
		}
		if ($this->where(array('cat_id'=>$cat_id))->delete()){
			return true;
		}
		return false;
	}
	
	
	/**
	 * 更改分类状态
	 * @param int $cat_id 单页分类ID
	 * @param int $status 状态
	 * @return bool
	 */
	public function changeStatus($status, $cat_id){
		if (!$cat_id) {
			return false;
		}
		if ($this->where(array('cat_id'=>$cat_id))->save(array('status'=>$status)) !== false) {
			return true;
		}
		return false;
	}
	
	/**
	 * 是否有子类
	 * @param int $cat_id
	 * @return bool
	 */
	public function hasSubCate($cat_id){
		if (!$cat_id) {
			return false;
		}
		if ($this->where(array('parent_id'=>$cat_id))->count()) {
			return true;
		}
		return false;
	}
	
}